Systems and methods to display chart bars with variable scaling and/or aggregation

ABSTRACT

Example methods, apparatus, and computer readable storage media are described and disclosed. An example method includes receiving market data related to a tradeable object offered at an exchange, aggregating a first data subset of the market data for a first period, and aggregating a second data subset of the market data for a second period. The second period represents a period of time different from the first period. The example method includes defining a first bar based on the first data subset and a first bar-width, and defining a second bar based on the second data subset and a second bar-width. The second bar-width is related to the first bar-width based on a width-scaling factor. The example method includes displaying the first bar and the second bar in the window, wherein the first bar and the second bar are separated by a bar-spacing.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/698,628, filed Apr. 28, 2015, the contents of which are fullyincorporated by reference herein for all purposes.

BACKGROUND

An electronic trading system generally includes a trading device incommunication with an electronic exchange. The trading device receivesinformation about a market, such as prices and quantities, from theelectronic exchange. The electronic exchange receives messages, such asmessages related to orders, from the trading device. The electronicexchange attempts to match quantity of an order with quantity of one ormore contra-side orders.

Trading applications create interactive trading interfaces for tradersto view and/or participate in at least one market offered at theelectronic exchange. The trading interfaces enable traders to monitorthe market data for the electronic exchange (e.g., monitor positions,obtain market quotes, etc.) and submit trade orders to the electronicexchange. To assist traders in obtaining the best prices for their tradeorders, a large volume of trade information such as market data ispresented to the trader for analysis and/or assimilation. Some tradinginterfaces display market data using charts to enable the trader tobetter understand a relationship between movement of price and volume oftrades of a tradeable object. Charts graphically represent the marketdata and enable the trader to visualize trends and/or changes in dataover intervals (e.g., time) of interest.

BRIEF DESCRIPTION OF THE FIGURES

Certain examples are disclosed with reference to the following drawings.

FIG. 1 illustrates a block diagram representative of an exampleelectronic trading system in which certain examples may be employed.

FIG. 2 illustrates a block diagram of another example electronic tradingsystem in which certain examples may be employed.

FIG. 3 illustrates a block diagram of an example computing device whichmay be used to implement the disclosed examples.

FIG. 4 illustrates an example variable display to chart bars withvariable scaling and/or aggregation.

FIG. 5 illustrates an example graphical user interface in which scalingfactors for the variable display of FIG. 4 may be selected.

FIG. 6 illustrates another example variable display to chart bars withvariable scaling and/or aggregation.

FIG. 7 illustrates another example variable display to chart bars withvariable scaling and/or aggregation.

FIG. 8 illustrates another example variable display to chart bars withvariable scaling and/or aggregation.

FIG. 9 illustrates another example variable display to chart bars withvariable scaling and/or aggregation.

FIG. 10 illustrates a flow diagram of an example method to chart barswith variable scaling and/or aggregation.

FIG. 11 illustrates another example variable display to chart bars and atrend line with variable scaling and/or aggregation.

FIG. 12 illustrates another example variable display to chart bars andanother trend line with variable scaling and/or aggregation.

Certain examples will be better understood when read in conjunction withthe provided figures, which illustrate examples. It should beunderstood, however, that the examples are not limited to thearrangements and instrumentality shown in the attached figures.

DETAILED DESCRIPTION

This patent relates generally to electronic trading and, moreparticularly, to methods to display chart bars with variable scalingand/or aggregation.

The examples disclosed and described herein enable a user to betterunderstand a relationship between movement of price and/or volume oftrades of a tradeable object using a graphical representation of a setof data (e.g., market data associated with the tradeable object). Thegraphical representation may include a chart such as a bar chart, acandlestick chart, an OHLC (open-high-low-close) chart, a timelinechart, etc. In some such instances, the market data is aggregated into“rolled-up” bars. For example, the bars may be aggregated by time (e.g.,five minute bars, 30 minute bars, daily bars, etc.), by volume (e.g., 40contracts, 1,000 contracts, etc.) by ticks (e.g., the number of datapoints) and/or by price.

Regardless of the display style (e.g., a bar chart, a candlestick chart,an OHLC chart, a timeline chart, etc.), a trader usually has limitedoptions available for viewing more or less data. For example, the tradercan select different aggregation parameters (e.g., one minute bars tosee a close-in, detailed view, or switch to longer aggregation periods(e.g., hourly, daily, etc.) to see more historical data). However,viewing the additional data typically comes at the cost of a diminishedviewing experience as detailed information associated with the barsbecomes relatively harder to identify.

The examples disclosed and described herein chart market data for atradeable object in a variable display. In some examples, the variabledisplay includes tradeable object bars, where each tradeable object barrepresents an aggregation of market data for a tradeable object. Forexample, one or more attributes of the tradeable object may definegraphical characteristics (e.g., height, width, location, etc.) of thetradeable object bar. As a result, the tradeable object bars maygraphically represent the attributes and enable comparison of theassociated tradeable object for different aggregations (e.g.,identifying trends in trades of the tradeable object).

In some examples, the graphical characteristics of the tradeable objectbars are variably changed. For example, a sliding scale may be appliedto the spacing between consecutive tradeable object bars, the width ofeach tradeable object bar and/or the aggregation parameters. Forexample, in a variable display for time-series data, the tradeableobject bars representative of the most recent market data may have a“normal” appearance (e.g., a non-squeezed view), while the spacingbetween tradeable object bars and/or the width of the tradeable objectbars representative of historical data have a squeezed appearance. Thatis, the variable display includes a squeezed view of data (e.g.,historical data) that transitions to a normal view of data in which thetradeable object bars have increased spacing between consecutivetradeable object bars and increased widths. In some such examples,within the same presentation window, the variable display presents (1) aclear, detailed representation of the most recent market data (e.g.,price actions), and (2) a longer term view of swing-highs and swing-lowsas the data moves back-in-time. As a result, disclosed and describedexamples relieve a trader of continuously changing charts, switchingbetween different aggregations and/or using multiple displays withdifferent aggregations.

Although this description discloses examples including, among othercomponents, software executed on hardware, it should be noted that theexamples are merely illustrative and should not be considered aslimiting. For example, it is contemplated that any or all of thesehardware and software components may be embodied exclusively inhardware, exclusively in software, exclusively in firmware, or in anycombination of hardware, software, and/or firmware. Accordingly, certainexamples may be implemented in other ways.

While some examples described herein may refer to functions performed byone or more given actors such as “users,” “traders,” “marketparticipants” and/or other entities, it should be understood that thisis for purposes of explanation only. The claims should not beinterpreted to require action by any such example actor unlessexplicitly required by the language of the claims themselves.

I. BRIEF DESCRIPTION OF CERTAIN EXAMPLES

Certain embodiments provide a method. The example method includesreceiving market data related to a tradeable object offered at anexchange. The example method includes aggregating a first data subset ofthe market data for a first period, and aggregating a second data subsetof the market data for a second period. In the example method, thesecond period represents a period of time different from the firstperiod. The example method includes defining a first bar based on thefirst data subset and a first bar-width, and defining a second bar basedon the second data subset and a second bar-width. In the example method,the second bar-width is related to the first bar-width based on awidth-scaling factor. The example method also includes displaying thefirst bar and the second bar in the window. In the example method, thefirst bar and the second bar are separated by a bar-spacing.

Certain embodiments provide a tangible computer readable storage mediumcomprising instructions. The example instructions, when executed, causea computing device to at least receive market data related to atradeable object offered at an exchange. The example instructions, whenexecuted, cause the computing device to aggregate a first data subset ofthe market data for a first period, and aggregate a second data subsetof the market data for a second period. The example second period torepresent a period of time different from the first period, and aduration associated with the second period to be a duration associatedwith the first period based on an aggregation-scaling factor greaterthan one. The example instructions, when executed, cause the computingdevice to define a first bar based on the first data subset and a firstbar-width, and to define a second bar based on the second data subsetand a second bar-width. The example second bar-width to be related tothe first bar-width based on a width-scaling factor. The exampleinstructions, when executed, cause the computing device to display thefirst bar and the second bar in the window, wherein the first bar andthe second bar are separated by a bar-spacing.

II. EXAMPLE ELECTRONIC TRADING SYSTEM

FIG. 1 illustrates a block diagram representative of an exampleelectronic trading system 100 in which certain examples may be employed.The system 100 includes a trading device 110, a gateway 120, and anexchange 130. The trading device 110 is in communication with thegateway 120. The gateway 120 is in communication with the exchange 130.As used herein, the phrase “in communication with” encompasses directcommunication and/or indirect communication through one or moreintermediary components. The exemplary electronic trading system 100depicted in FIG. 1 may be in communication with additional components,subsystems, and elements to provide additional functionality andcapabilities without departing from the teaching and disclosure providedherein.

In operation, the trading device 110 may receive market data from theexchange 130 through the gateway 120. A user may utilize the tradingdevice 110 to monitor this market data and/or base a decision to send anorder message to buy or sell one or more tradeable objects to theexchange 130.

Market data may include data about a market for a tradeable object. Forexample, market data may include the inside market, market depth, lasttraded price (“LTP”), a last traded quantity (“LTQ”), or a combinationthereof. The inside market refers to the highest available bid price(best bid) and the lowest available ask price (best ask or best offer)in the market for the tradeable object at a particular point in time(since the inside market may vary over time). Market depth refers toquantities available at price levels including the inside market andaway from the inside market. Market depth may have “gaps” due to priceswith no quantity based on orders in the market.

The price levels associated with the inside market and market depth canbe provided as value levels which can encompass prices as well asderived and/or calculated representations of value. For example, valuelevels may be displayed as net change from an opening price. As anotherexample, value levels may be provided as a value calculated from pricesin two other markets. In another example, value levels may includeconsolidated price levels.

A tradeable object is anything which may be traded. For example, acertain quantity of the tradeable object may be bought or sold for aparticular price. A tradeable object may include, for example, financialproducts, stocks, options, bonds, future contracts, currency, warrants,funds derivatives, securities, commodities, swaps, interest rateproducts, index-based products, traded events, goods, or a combinationthereof. A tradeable object may include a product listed and/oradministered by an exchange, a product defined by the user, acombination of real or synthetic products, or a combination thereof.There may be a synthetic tradeable object that corresponds and/or issimilar to a real tradeable object.

An order message is a message that includes a trade order. A trade ordermay be, for example, a command to place an order to buy or sell atradeable object; a command to initiate managing orders according to adefined trading strategy; a command to change, modify, or cancel anorder; an instruction to an electronic exchange relating to an order; ora combination thereof.

The trading device 110 may include one or more electronic computingplatforms. For example, the trading device 110 may include a desktopcomputer, hand-held device, laptop, server, a portable computing device,a trading terminal, an embedded trading system, a workstation, analgorithmic trading system such as a “black box” or “grey box” system,cluster of computers, or a combination thereof. As another example, thetrading device 110 may include a single or multi-core processor incommunication with a memory or other storage medium configured toaccessibly store one or more computer programs, applications, libraries,computer readable instructions, and the like, for execution by theprocessor.

As used herein, the phrases “configured to” and “adapted to” encompassthat an element, structure, or device has been modified, arranged,changed, or varied to perform a specific function or for a specificpurpose.

By way of example, the trading device 110 may be implemented as apersonal computer running a copy of X_TRADER®, an electronic tradingplatform provided by Trading Technologies International, Inc. ofChicago, Ill. (“Trading Technologies”). As another example, the tradingdevice 110 may be a server running a trading application providingautomated trading tools such as ADL®, AUTOSPREADER®, and/or AUTOTRADER™,also provided by Trading Technologies. In yet another example, thetrading device 110 may include a trading terminal in communication witha server, where collectively the trading terminal and the server are thetrading device 110.

The trading device 110 is generally owned, operated, controlled,programmed, configured, or otherwise used by a user. As used herein, thephrase “user” may include, but is not limited to, a human (for example,a trader), trading group (for example, a group of traders), or anelectronic trading device (for example, an algorithmic trading system).One or more users may be involved in the ownership, operation, control,programming, configuration, or other use, for example.

The trading device 110 may include one or more trading applications. Asused herein, a trading application is an application that facilitates orimproves electronic trading. A trading application provides one or moreelectronic trading tools. For example, a trading application stored by atrading device maybe executed to arrange and display market data in oneor more trading windows. In another example, a trading application mayinclude an automated spread trading application providing spread tradingtools. In yet another example, a trading application may include analgorithmic trading application that automatically processes analgorithm and performs certain actions, such as placing an order,modifying an existing order, deleting an order. In yet another example,a trading application may provide one or more trading screens. A tradingscreen may provide one or more trading tools that allow interaction withone or more markets. For example, a trading tool may allow a user toobtain and view market data, set order entry parameters, submit ordermessages to an exchange, deploy trading algorithms, and/or monitorpositions while implementing various trading strategies. The electronictrading tools provided by the trading application may always beavailable or may be available only in certain configurations oroperating modes of the trading application.

A trading application may be implemented utilizing computer readableinstructions that are stored in a computer readable medium andexecutable by a processor. A computer readable medium may includevarious types of volatile and non-volatile storage media, including, forexample, random access memory, read-only memory, programmable read-onlymemory, electrically programmable read-only memory, electricallyerasable read-only memory, flash memory, any combination thereof, or anyother tangible data storage device. As used herein, the termnon-transitory or tangible computer readable medium is expressly definedto include any type of computer readable storage media and to excludepropagating signals.

In some examples, the trading device 110 may include a tradeable objectvariable display module (sometimes referred to herein as a “variabledisplay module”). The variable display module may include instructionsthat may be executed in accordance with one or more of the examplesdisclosed and described herein. For example, a variable display modulemay include instructions for receiving market data related to atradeable object and displaying the market data using variable scalingand/or aggregation. For example, the variable display module may includeinstructions to graphically represent the market data using tradeableobject bars. In some such examples, the variable display module mayinclude instructions to variably scale the graphical characteristics ofthe tradeable object bars for the market data presented. For example,the variable display module may include instructions to decrease thespacing between the tradeable object bars and/or the width of eachtradeable object bar when viewing the market data from the most recentinformation to historical information. In some other examples, thevariable display module may include instructions to variably scale themarket data aggregated into the “rolled-up” tradeable object bars. Forexample, the variable display module may include instructions toaggregate current market data over short (e.g., finer or more granular)periods (e.g., 1 minute bars) and over relatively longer periods (e.g.,1 hour bars, daily bars, etc.). In another example, the variable displaymodule may include instructions to variably scale the spacing betweenthe tradeable object bars, the width of each tradeable object bar and/orthe market data aggregations.

One or more components or modules of a trading application may be loadedinto the computer readable medium of the trading device 110 from anothercomputer readable medium. For example, the trading application (orupdates to the trading application) may be stored by a manufacturer,developer, or publisher on one or more CDs or DVDs, which are thenloaded onto the trading device 110 or to a server from which the tradingdevice 110 retrieves the trading application. As another example, thetrading device 110 may receive the trading application (or updates tothe trading application) from a server, for example, via the Internet oran internal network. The trading device 110 may receive the tradingapplication or updates when requested by the trading device 110 (forexample, “pull distribution”) and/or un-requested by the trading device110 (for example, “push distribution”).

The trading device 110 may be adapted to send order messages. Forexample, the order messages may be sent to through the gateway 120 tothe exchange 130. As another example, the trading device 110 may beadapted to send order messages to a simulated exchange in a simulationenvironment which does not effectuate real-world trades.

The order messages may be sent at the request of a user. For example, atrader may utilize the trading device 110 to send an order message ormanually input one or more parameters for a trade order (for example, anorder price and/or quantity). As another example, an automated tradingtool provided by a trading application may calculate one or moreparameters for a trade order and automatically send the order message.In some instances, an automated trading tool may prepare the ordermessage to be sent but not actually send it without confirmation from auser.

An order message may be sent in one or more data packets or through ashared memory system. For example, an order message may be sent from thetrading device 110 to the exchange 130 through the gateway 120. Thetrading device 110 may communicate with the gateway 120 using a localarea network, a wide area network, a wireless network, a virtual privatenetwork, a cellular network, a peer-to-peer network, a T1 line, a T3line, an integrated services digital network (“ISDN”) line, apoint-of-presence, the Internet, a shared memory system and/or aproprietary network such as TTNET™ provided by Trading Technologies, forexample.

The gateway 120 may include one or more electronic computing platforms.For example, the gateway 120 may be implemented as one or more desktopcomputer, hand-held device, laptop, server, a portable computing device,a trading terminal, an embedded trading system, workstation with asingle or multi-core processor, an algorithmic trading system such as a“black box” or “grey box” system, cluster of computers, or anycombination thereof.

The gateway 120 may facilitate communication. For example, the gateway120 may perform protocol translation for data communicated between thetrading device 110 and the exchange 130. The gateway 120 may process anorder message received from the trading device 110 into a data formatunderstood by the exchange 130, for example. Similarly, the gateway 120may transform market data in an exchange-specific format received fromthe exchange 130 into a format understood by the trading device 110, forexample.

The gateway 120 may include a trading application, similar to thetrading applications discussed above, that facilitates or improveselectronic trading. For example, the gateway 120 may include a tradingapplication that tracks orders from the trading device 110 and updatesthe status of the order based on fill confirmations received from theexchange 130. As another example, the gateway 120 may include a tradingapplication that coalesces market data from the exchange 130 andprovides it to the trading device 110. In yet another example, thegateway 120 may include a trading application that provides riskprocessing, calculates implieds, handles order processing, handlesmarket data processing, or a combination thereof.

In certain examples, the gateway 120 communicates with the exchange 130using a local area network, a wide area network, a wireless network, avirtual private network, a cellular network, a peer-to-peer network, aT1 line, a T3 line, an ISDN line, a point-of-presence, the Internet, ashared memory system, and/or a proprietary network such as TTNET™provided by Trading Technologies, for example.

The exchange 130 may be owned, operated, controlled, or used by anexchange entity. Example exchange entities include the CME Group, theLondon International Financial Futures and Options Exchange, theIntercontinental Exchange, and Eurex. The exchange 130 may include anelectronic matching system, such as a computer, server, or othercomputing device, which is adapted to allow tradeable objects, forexample, offered for trading by the exchange, to be bought and sold. Theexchange 130 may include separate entities, some of which list and/oradminister tradeable objects and others which receive and match orders,for example. The exchange 130 may include an electronic communicationnetwork (“ECN”), for example.

The exchange 130 may be an electronic exchange. The exchange 130 isadapted to receive order messages and match contra-side trade orders tobuy and sell tradeable objects. Unmatched trade orders may be listed fortrading by the exchange 130. Once an order to buy or sell a tradeableobject is received and confirmed by the exchange, the order isconsidered to be a working order until it is filled or cancelled. Ifonly a portion of the quantity of the order is matched, then thepartially filled order remains a working order. The trade orders mayinclude trade orders received from the trading device 110 or otherdevices in communication with the exchange 130, for example. Forexample, typically the exchange 130 will be in communication with avariety of other trading devices (which may be similar to trading device110) which also provide trade orders to be matched.

The exchange 130 is adapted to provide market data. Market data may beprovided in one or more messages or data packets or through a sharedmemory system. For example, the exchange 130 may publish a data feed tosubscribing devices, such as the trading device 110 or gateway 120. Thedata feed may include market data.

The system 100 may include additional, different, or fewer components.For example, the system 100 may include multiple trading devices,gateways, and/or exchanges. In another example, the system 100 mayinclude other communication devices, such as middleware, firewalls,hubs, switches, routers, servers, exchange-specific communicationequipment, modems, security managers, and/or encryption/decryptiondevices.

III. EXPANDED EXAMPLE ELECTRONIC TRADING SYSTEM

FIG. 2 illustrates a block diagram of another example electronic tradingsystem 200 in which certain examples may be employed. In this example, atrading device 210 may utilize one or more communication networks tocommunicate with a gateway 220 and exchange 230. For example, thetrading device 210 utilizes network 202 to communicate with the gateway220, and the gateway 220, in turn, utilizes the networks 204 and 206 tocommunicate with the exchange 230. As used herein, a network facilitatesor enables communication between computing devices such as the tradingdevice 210, the gateway 220, and the exchange 230.

The following discussion generally focuses on the trading device 210,gateway 220, and the exchange 230. However, the trading device 210 mayalso be connected to and communicate with “n” additional gateways(individually identified as gateways 220 a-220 n, which may be similarto gateway 220) and “n” additional exchanges (individually identified asexchanges 230 a-230 n, which may be similar to exchange 230) by way ofthe network 202 (or other similar networks). Additional networks(individually identified as networks 204 a-204 n and 206 a-206 n, whichmay be similar to networks 204 and 206, respectively) may be utilizedfor communications between the additional gateways and exchanges. Thecommunication between the trading device 210 and each of the additionalexchanges 230 a-230 n need not be the same as the communication betweenthe trading device 210 and exchange 230. Generally, each exchange hasits own preferred techniques and/or formats for communicating with atrading device, a gateway, the user, or another exchange. It should beunderstood that there is not necessarily a one-to-one mapping betweengateways 220 a-220 n and exchanges 230 a-230 n. For example, aparticular gateway may be in communication with more than one exchange.As another example, more than one gateway may be in communication withthe same exchange. Such an arrangement may, for example, allow one ormore trading devices 210 to trade at more than one exchange (and/orprovide redundant connections to multiple exchanges).

Additional trading devices 210 a-210 n, which may be similar to tradingdevice 210, may be connected to one or more of the gateways 220 a-220 nand exchanges 230 a-230 n. For example, the trading device 210 a maycommunicate with the exchange 230 a via the gateway 220 a and thenetworks 202 a, 204 a and 206 a. In another example, the trading device210 b may be in direct communication with exchange 230 a. In anotherexample, trading device 210 c may be in communication with the gateway220 n via an intermediate device 208 such as a proxy, remote host, orWAN router.

The trading device 210, which may be similar to the trading device 110in FIG. 1, includes a server 212 in communication with a tradingterminal 214. The server 212 may be located geographically closer to thegateway 220 than the trading terminal 214 in order to reduce latency. Inoperation, the trading terminal 214 may provide a trading screen to auser and communicate commands to the server 212 for further processing.For example, a trading algorithm may be deployed to the server 212 forexecution based on market data. The server 212 may execute the tradingalgorithm without further input from the user. In another example, theserver 212 may include a trading application providing automated tradingtools and communicate back to the trading terminal 214. The tradingdevice 210 may include additional, different, or fewer components.

In operation, the network 202 may be a multicast network configured toallow the trading device 210 to communicate with the gateway 220. Dataon the network 202 may be logically separated by subject such as, forexample, by prices, orders, or fills. As a result, the server 212 andtrading terminal 214 can subscribe to and receive data such as, forexample, data relating to prices, orders, or fills, depending on theirindividual needs.

The gateway 220, which may be similar to the gateway 120 of FIG. 1, mayinclude a price server 222, order server 224, and fill server 226. Thegateway 220 may include additional, different, or fewer components. Theprice server 222 may process price data. Price data includes datarelated to a market for one or more tradeable objects. The order server224 processes order data. Order data is data related to a user's tradeorders. For example, order data may include order messages, confirmationmessages, or other types of messages. The fill server collects andprovides fill data. Fill data includes data relating to one or morefills of trade orders. For example, the fill server 226 may provide arecord of trade orders, which have been routed through the order server224, that have and have not been filled. The servers 222, 224, and 226may run on the same machine or separate machines. There may be more thanone instance of the price server 222, the order server 224, and/or thefill server 226 for gateway 220. In certain examples, the additionalgateways 220 a-220 n may each includes instances of the servers 222,224, and 226 (individually identified as servers 222 a-222 n, 224 a-224n, and 226 a-226 n).

The gateway 220 may communicate with the exchange 230 using one or morecommunication networks. For example, as shown in FIG. 2, there may betwo communication networks connecting the gateway 220 and the exchange230. The network 204 may be used to communicate market data to the priceserver 222. In some instances, the exchange 230 may include this data ina data feed that is published to subscribing devices. The network 206may be used to communicate order data to the order server 224 and thefill server 226. The network 206 may also be used to communicate orderdata from the order server 224 to the exchange 230.

The exchange 230, which may be similar to the exchange 130 of FIG. 1,includes an order book 232 and a matching engine 234. The exchange 230may include additional, different, or fewer components. The order book232 is a database that includes data relating to unmatched trade ordersthat have been submitted to the exchange 230. For example, the orderbook 232 may include data relating to a market for a tradeable object,such as the inside market, market depth at various price levels, thelast traded price, and the last traded quantity. The matching engine 234may match contra-side bids and offers pending in the order book 232. Forexample, the matching engine 234 may execute one or more matchingalgorithms that match contra-side bids and offers. A sell order iscontra-side to a buy order. Similarly, a buy order is contra-side to asell order. A matching algorithm may match contra-side bids and offersat the same price, for example. In certain examples, the additionalexchanges 230 a-230 n may each include order books and matching engines(individually identified as the order book 232 a-232 n and the matchingengine 234 a-234 n, which may be similar to the order book 232 and thematching engine 234, respectively). Different exchanges may usedifferent data structures and algorithms for tracking data related toorders and matching orders.

In operation, the exchange 230 may provide price data from the orderbook 232 to the price server 222 and order data and/or fill data fromthe matching engine 234 to the order server 224 and/or the fill server226. Servers 222, 224, 226 may process and communicate this data to thetrading device 210. The trading device 210, for example, using a tradingapplication, may process this data. For example, the data may bedisplayed to a user. In another example, the data may be utilized in atrading algorithm to determine whether a trade order should be submittedto the exchange 230. The trading device 210 may prepare and send anorder message to the exchange 230.

In certain examples, the gateway 220 is part of the trading device 210.For example, the components of the gateway 220 may be part of the samecomputing platform as the trading device 210. As another example, thefunctionality of the gateway 220 may be performed by components of thetrading device 210. In certain examples, the gateway 220 is not present.Such an arrangement may occur when the trading device 210 does not needto utilize the gateway 220 to communicate with the exchange 230, such asif the trading device 210 has been adapted to communicate directly withthe exchange 230.

IV. EXAMPLE COMPUTING DEVICE

FIG. 3 illustrates a block diagram of an example computing device 300which may be used to implement the disclosed examples. The tradingdevice 110 of FIG. 1 may include one or more computing devices 300, forexample. The gateway 120 of FIG. 1 may include one or more computingdevices 300, for example. The exchange 130 of FIG. 1 may include one ormore computing devices 300, for example.

The computing device 300 includes a communication network 310, aprocessor 312, a memory 314, an interface 316, an input device 318, andan output device 320. The computing device 300 may include additional,different, or fewer components. For example, multiple communicationnetworks, multiple processors, multiple memory, multiple interfaces,multiple input devices, multiple output devices, or any combinationthereof, may be provided. As another example, the computing device 300may not include an input device 318 or output device 320.

As shown in FIG. 3, the computing device 300 may include a processor 312coupled to a communication network 310. The communication network 310may include a communication bus, channel, electrical or optical network,circuit, switch, fabric, or other mechanism for communicating databetween components in the computing device 300. The communicationnetwork 310 may be communicatively coupled with and transfer databetween any of the components of the computing device 300.

The processor 312 may be any suitable processor, processing unit, ormicroprocessor. The processor 312 may include one or more generalprocessors, digital signal processors, application specific integratedcircuits, field programmable gate arrays, analog circuits, digitalcircuits, programmed processors, and/or combinations thereof, forexample. The processor 312 may be a single device or a combination ofdevices, such as one or more devices associated with a network ordistributed processing. Any processing strategy may be used, such asmulti-processing, multi-tasking, parallel processing, and/or remoteprocessing. Processing may be local or remote and may be moved from oneprocessor to another processor. In certain examples, the computingdevice 300 is a multi-processor system and, thus, may include one ormore additional processors which are communicatively coupled to thecommunication network 310.

The processor 312 may be operable to execute logic and other computerreadable instructions encoded in one or more tangible media, such as thememory 314. As used herein, logic encoded in one or more tangible mediaincludes instructions which may be executable by the processor 312 or adifferent processor. The logic may be stored as part of software,hardware, integrated circuits, firmware, and/or micro-code, for example.The logic may be received from an external communication device via acommunication network such as the network 340. The processor 312 mayexecute the logic to perform the functions, acts, or tasks illustratedin the figures or described herein.

The memory 314 may be one or more tangible media, such as computerreadable storage media, for example. Computer readable storage media mayinclude various types of volatile and non-volatile storage media,including, for example, random access memory, read-only memory,programmable read-only memory, electrically programmable read-onlymemory, electrically erasable read-only memory, flash memory, anycombination thereof, or any other tangible data storage device. As usedherein, the term non-transitory or tangible computer readable medium isexpressly defined to include any type of computer readable medium and toexclude propagating signals. The memory 314 may include any desired typeof mass storage device including hard disk drives, optical media,magnetic tape or disk, etc.

The memory 314 may include one or more memory devices. For example, thememory 314 may include local memory, a mass storage device, volatilememory, non-volatile memory, or a combination thereof. The memory 314may be adjacent to, part of, programmed with, networked with, and/orremote from processor 312, so the data stored in the memory 314 may beretrieved and processed by the processor 312, for example. The memory314 may store instructions which are executable by the processor 312.The instructions may be executed to perform one or more of the acts orfunctions described herein or shown in the figures.

The memory 314 may store a trading application 330. In certain examples,the trading application 330 may be accessed from or stored in differentlocations. The processor 312 may access the trading application 330stored in the memory 314 and execute computer-readable instructionsincluded in the trading application 330.

In certain examples, during an installation process, the tradingapplication may be transferred from the input device 318 and/or thenetwork 340 to the memory 314. When the computing device 300 is runningor preparing to run the trading application 330, the processor 312 mayretrieve the instructions from the memory 314 via the communicationnetwork 310.

V. EXAMPLE METHODS TO DISPLAY CHART BARS WITH VARIABLE SCALING AND/ORAGGREGATION

FIG. 4 illustrates an example variable display 400. The variable display400 may be generated by a tradeable object variable display moduleexecuted by, for example, the processor 312. In the illustrated example,the variable display 400 charts a tradeable object 402 (e.g., theFebruary 2014 Crude Oil futures traded by at the New York MercantileExchange (NYMEX) and identified as “WTI February 14”) on the variabledisplay 400.

The example variable display 400 includes tradeable object bars 406,408, 410, 412, 414. A tradeable object bar represents an aggregation ofmarket data for a tradeable object. In the illustrated example, eachtradeable object bar represents market data (e.g., received from theNYMEX for the February 2014 Crude Oil futures identified as “WTIFebruary 14”) aggregated over different periods of time. For example,the tradeable object bar 406 is a graphical representation of marketdata aggregated over a first period of time 416, the tradeable objectbar 408 is a graphical representation of market data aggregated over asecond period of time 418, the tradeable object bar 410 is a graphicalrepresentation of market data aggregated over a third period of time420, the tradeable object bar 412 is a graphical representation ofmarket data aggregated over a fourth period of time 422, and thetradeable object bar 414 is a graphical representation of market dataaggregated over a fifth period of time 424. In the illustrated example,the variable display 400 includes an example axis 404 to, for example,normalize prices for the tradeable object bars 406, 408, 410, 412, 414.

In some examples, a trader may desire additional information about atradeable object bar. In the illustrated example of FIG. 4, a trader mayuse an input device (e.g., a mouse, touchscreen, touch pad, track ball,etc.) to select a tradeable object bar by moving an example cursor 430over, on top of, adjacent to, or otherwise in relationship with thetradeable object bar and clicking the mouse. In the illustrated example,selecting a tradeable object bar launches a new window 432 in whichadditional information about the selected tradeable object bar isdisplayed. In some examples, the new window 432 may include marketindicators such as conditions relating to a particular market. Forexample, historic and/or current market indicators may indicate theinside market, open/close price, high price, low price, or other marketconditions.

As described above, the variable display 400 is a graphicalrepresentation of a set of data (e.g., market data received from anexchange) associated with the tradeable object 402 (e.g., WTI February14). In the illustrated example, the variable display 400 is a chart.Example charts include a bar chart, a candlestick chart, a timelinechart, an OHLC (open-high-low-close) chart, etc.

A bar chart is a chart with rectangular bars with lengths indicating thevalues that they represent. The bars can be plotted vertically orhorizontally. For example, the bars may be vertically-aligned marketindicia. A candlestick chart is a graphical representation of pricemovements for a given period of time. Candlesticks may be formed by theopening, high, low and closing prices of a tradeable object. If theopening price is above the closing price, then a filled (normally red orblack) candlestick is drawn. Typically, if the closing price is abovethe opening price, the candlestick may be shown as green or as a hollowcandlestick (e.g., white body with a black frame). The filled or hollowportion of the candlestick is known as the body or real body, and can belong, normal or short depending on its proportion to the lines above orbelow it. The lines above and below (sometimes referred to as “shadows,”“tails” or “wicks”) represent the high and low price ranges within aspecified time period. However, not all candlesticks have shadows. Atimeline chart illustrates relative movement of the tradeable objectover time.

An open-high-low-close (OHLC) chart is a type of chart typically used toillustrated changes or movements in the price of a tradeable object overtime or any other sampling method such as volume or other market dataattributes. Each vertical line on the chart shows the price range (e.g.,the highest and the lowest prices) over one unit of time (e.g., oneminute, one hour, daily, etc.). Tick marks project from each side of theline indicating the opening price (e.g., for a daily bar chart, thiswould be the starting price for that day) on the left, and the closingprice for that time period on the right. The bars may be shown indifferent hues depending on whether prices rose or fell in therespective period of time.

In the illustrated example, the location or position of a tradeableobject bar is based on (e.g., dependent on, calculated from, derivedfrom) the market data for respective periods of time. In some examples,the location or position of a tradeable object bar is based on theattributes of the tradeable object with respective to the axis 404. Forexample, the tradeable object bars 406, 408, 410, 412, 414 included inthe variable display 400 represent price attributes of the tradeableobject 402 for the corresponding periods of time 416, 418, 420, 422,424. In some examples, price attributes may be represented include thehigh price, the low price, the average high price, the average lowprice, the average midpoint, the average ask, the average bid, thevolume-weighted average price (VWAP), etc.

In the illustrated variable display 400, the right-most tradeable objectbar indicates the most recent period of time and is the most recenttradeable object bar presented in the variable display 400. For example,the fifth period of time 424 is more recent in comparison to the firstperiod of time 416. Accordingly, the tradeable object bar 414 isrepresentative of newer market data received (e.g., for the tradeableobject 402) in comparison to the market data graphically represented bythe tradeable object bar 406. In some such examples, the tradeableobject bar 414 is the most recent (e.g., the last) tradeable object barpresented in the variable display 400. However, other approaches mayadditionally or alternatively be used. For example, after a screenrefresh is executed, the tradeable object bar 414 may be presentedbefore the tradeable object bar 406.

In some examples, the graphical characteristic(s) of a tradeable objectbar (e.g., location or position and/or width) is variable. For example,as described in connection with FIG. 6, an example variable display 600shows tradeable object bars in which a width of a first tradeable objectbar is decreased in comparison to a width of a second tradeable objectbar representative of a “newer” (e.g., more recent) period of time.

In some examples, to determine the width of a tradeable object bar, awidth-scaling factor is applied relative to the width of other tradeableobject bars in the variable display 400. For example, the bar-width(e.g., number of pixels) of the tradeable object bar 418 may be 90%(e.g., a width-scaling factor of 0.9) of the bar-width of the tradeableobject bar 420. In some examples, the width-scaling factor is applied toeach tradeable object bar relative (e.g., in comparison) to theneighboring tradeable object bar representative of newer market data. Insome other examples, the width-scaling factor may be applied to acluster or set of tradeable object bars relative to a neighboringcluster or set of tradeable object bars representative of newer marketdata. In some examples, the width-scaling factor (e.g., a defaultwidth-scaling factor) may be automatically applied to the tradeableobject bars. For example, the variable display module may apply awidth-scaling factor based on the amount of market data to present,based on the viewable area of the variable display 400 (e.g., based on anumber of pixels), based on the number of tradeable objects tographically represent in the variable display 400, the tradeable objectsgrouped and/or related for comparison, etc. In some examples, a tradermay select the width-scaling factor to apply to the tradeable objectbars. In some such examples, the trader may utilize a configurationinterface such as an example configuration interface 500 described inconnection with FIG. 5. By decreasing the width of older (e.g.,historical) tradeable object bars, less space is utilized in presentingthe same amount of information, and, as a result, more information canbe graphically represented in the variable display. Increasing theamount of information displayed (e.g., over a longer period of time) maybe useful for identifying a trend between the price and the volume ofthe tradeable object, for example.

In some examples, spacing between consecutive tradeable object bars inthe variable display 400 is variable. For example, a spatial-scalingfactor is applied to the tradeable object bars shown in the variabledisplay 600 of FIG. 6 to determine the location or position of eachtradeable object bar relative to other tradeable object bars. In someexamples, the spatial-scaling factor is applied to each tradeable objectbar relative (e.g., in comparison) to the neighboring tradeable objectbar representative of newer market data. In some other examples, thespatial-scaling factor may be applied to a cluster or set of tradeableobject bars relative to a neighboring cluster or set of tradeable objectbars representative of newer market data. In some examples, thespatial-scaling factor (e.g., a default spatial-scaling factor) may beautomatically applied to the tradeable object bars (e.g., based on theamount of market data to present, based on the viewable area of thevariable display 400 (e.g., based on a number of pixels), based on thenumber of tradeable objects to graphically represent in the variabledisplay 400, the tradeable objects grouped and/or related forcomparison, etc.). In some examples, a trader may select thespatial-scaling factor to apply to the tradeable object bars. In somesuch examples, the trader may utilize a configuration interface such asan example configuration interface 500 described in connection with FIG.5. By decreasing the bar-spacing of older (e.g., historical) tradeableobject bars, less space is utilized in presenting the same amount ofinformation, and, as a result, more information can be graphicallyrepresented in the variable display. By increasing the amount ofinformation displayed (e.g., graphically representing market data over alonger period of time) to the trader, the trader may detect the trendbetween the price and the volume based on the appearance of thetradeable object bars.

In some examples, a period of time over which market data is aggregatedmay be variable. In some examples, an aggregation-scaling factor (e.g.,a default aggregation-scaling factor) may be automatically applied tothe received market data. In some examples, a trader interested inidentifying swing-highs and/or swing-lows for a tradeable object mayselect an aggregation-scaling factor to apply to received market datafor the tradeable object to vary the period of time represented by eachtradeable object bar. In some such examples, the trader may utilize aconfiguration interface such as an example configuration interface 500described in connection with FIG. 5. In some examples, tradeable objectbars representative of older market data may be aggregated overlengthening periods of time in comparison to more recent tradeableobject bars. As described in connection with FIG. 7 below, tradeableobject bars shown in an example variable display 700 are representativeof varying durations of time. For example, the most recent tradeableobject bar may be a visual representation of market data aggregated overa 1 minute period of time, while the tradeable object barsrepresentative of relatively older market data may be a visualrepresentation of market data aggregated over 5 minutes, 1 hour, a day,etc.

Although the example variable display 400 charts only one tradeableobject, other examples may chart more than one tradeable object such astwo, three or four tradeable objects. Furthermore, although the examplevariable display 400 displays market data aggregated over a period oftime, other approaches may additionally or alternatively be used. Forexample, the tradeable object bars may represent market data at a momentin time. In some examples, the market data may be aggregated using anon-time attribute such as volume, price, ticks, etc.

In some examples, the variable display is configured. For example, atrader may select a tradeable object to display, select the scalingfactors (e.g., the width-scaling factor, the spatial-scaling factorand/or the aggregation-scaling factor) applied to the graphicalcharacteristics of the tradeable object bars, etc. The variable displaymay be configured prior to or after launching the variable display. Forexample, a trader may configure the variable display prior to initiallylaunching the variable display and then update the configuration afterlaunching the variable display.

In some examples, configuring the variable display may include using aconfiguration interface. FIG. 5 illustrates an example configurationinterface 500 from which a trader may select different configurations(e.g., settings and/or parameter values). In the illustrated example,the configuration interface 500 includes an example scaling factorsselection interface 502 and an example aggregation units selectinginterface 518. However, other interfaces may also be included in theconfiguration interface 500. For example, the configuration interface500 may include an interface with which the trader selects whichtradeable object(s) to chart, spatial dimensions (e.g., the area ornumber of pixels to include) for the variable display, what attribute(s)of the tradeable object to chart, etc.

In some examples, the configuration interface 500 may include aninterface with which default settings can be selected. For example, adefault bar-width value (e.g., 10 pixels) may be selected, a defaultbar-spacing value (e.g., 15 pixels) may be selected and/or a defaultaggregation period of time (e.g., 1 minute) may be selected. In someexamples, the default settings (sometimes referred to as “base settingsor “anchor settings”) may be selected to define a “normal” view of themarket data (e.g., without variable scaling and/or aggregation).

The example scaling factors selection interface 502 facilitates definingthe one or more scaling factors to display chart bars with variablescaling and/or aggregation. For example, a width-scaling factor 504 maybe selected, a spatial-scaling factor 508 may be selected and/or anaggregation-scaling factor 512 may be selected.

Selection of the scaling factors 504, 508, 512 may be automatic and/ormanual. For example, default scaling-factors may be used until changed.In the illustrated example, the scaling factors selection interface 502indicates that applying a width-scaling factor 504 set to one results ina tradeable object bar that is ten pixels across (e.g., the defaultbar-width). Applying a spatial-scaling factor 508 set to one results ina variable display in which the distance between consecutive tradeableobject bars is fifteen pixels. Similarly, applying anaggregation-scaling factor 512 set to one results in tradeable objectbars representative of market data for one minute periods of time (e.g.,intervals).

In some examples, the default settings may be applied to the most recenttradeable object bar and the one or more scaling factors may be appliedto the tradeable object bars based on the default settings. For example,when the default bar-width is set to ten pixels and the width-scalingfactor is set to 90% (e.g., 0.90), the most recent tradeable object baris ten pixels wide, the second most recent tradeable object bar is ninepixels wide (e.g., 9=10*0.9), the third most recent tradeable object baris 8.1 pixels across (e.g., 8.1=9*0.9), etc. In some examples, thenumber of pixels may be rounded up and/or rounded down.

In some examples, the bar-width, the bar-spacing and/or the aggregationperiod may be adjusted manually or automatically by a formula. Forexample, an algorithm may be set to dynamically change one or more ofthe scaling factors 504, 508, 512 based on, for example, the amount ofmarket data available. In the illustrated example, the scaling factorsselection interface 502 includes an interface 516 with which an equation(e.g., formula, algorithm, etc.) can be defined. For example, alogarithmic equation may be defined to apply a sliding scale to thescaling factor values.

In the illustrated example, the configuration interface 500 includes theaggregation units selecting interface 518 to select the attributes foraggregating the market data. For example, a time attribute interface 520indicates that the market data, when selected, may be aggregated inminutes, hours or days, or other units of time. A volume attributeinterface 522 indicates that the market data, when selected, may beaggregated based on the number of contracts traded. A price attributeinterface 524 indicates that the market data, when selected, may beaggregated based on different price-values. An example tick attributeinterface 526 indicates that the market data, when selected, may beaggregated based on tick values. In certain examples, market data may beaggregated based on the number of ticks away from the inside market. Forexample, market data one (1) tick away from the inside market may beaggregated into a first group, market data five (5) ticks away from theinside market may be aggregated into a second group tick, and marketdata ten (10) ticks away from the inside market may be aggregated into athird group values. Different relative tick values and/or scales may beused to aggregate market data based on, for example, a trader'spreferences, and the display space available.

FIG. 6 illustrates another example variable display 600. The variabledisplay 600 may be generated by a tradeable object variable displaymodule, as discussed above. In the illustrated example, the variabledisplay 600 charts a tradeable object 602 (e.g., the February 2014 CrudeOil futures traded by at the New York Mercantile Exchange (NYMEX)identified as “WTI February 14”) on the variable display 600.

The example variable display 600 includes tradeable object bars 606,608, 610, 612, 614. Each tradeable object bar is a visual representationof market data aggregated over a period of time. A tradeable object barrepresents an aggregation of market data for a tradeable object. In theillustrated example, each tradeable object bar represents market data(e.g., received from the NYMEX for the February 2014 Crude Oil futures)aggregated over different periods of time. For example, the tradeableobject bar 606 is a graphical representation of market data aggregatedover a first period of time (e.g., a first subset of the market data),the tradeable object bar 608 is a graphical representation of marketdata aggregated over a second period of time (e.g., a second subset ofthe market data), the tradeable object bar 610 is a graphicalrepresentation of market data aggregated over a third period of time(e.g., a third subset of the market data), the tradeable object bar 612is a graphical representation of market data aggregated over a fourthperiod of time (e.g., a fourth subset of the market data), and thetradeable object bar 614 is a graphical representation of market dataaggregated over a fifth period of time (e.g., a fifth subset of themarket data). In the illustrated example, the variable display 600includes an example axis 604 to, for example, normalize prices for thetradeable object bars 606, 608, 610, 612, 614.

In the illustrated example of FIG. 6, the tradeable object bars 606,608, 610, 612, 614 are displayed using variable scaling. For example,each of the tradeable object bars 606, 608, 610, 612, 614 has arespective bar-width 616, 618, 620, 622, 624 and a respectivebar-spacing 626, 628, 630, 632, 634.

In the illustrated example, the bar-widths for the tradeable object bars606, 608, 610, 612, 614 are varied based on the applied width-scalingfactor. In the illustrated example, a 90% width-scaling factor isapplied to the bar-width of each tradeable object bar relative to itsadjacent bar, and the default bar-width is ten pixels across. Forexample, the bar-width 624 of the most recent tradeable object bar(e.g., the tradeable object bar 614) is ten pixels. Thus, in theillustrated example, the bar-width 622 of the tradeable object bar 612(e.g., nine pixels across) is less than the bar-width 624 of thetradeable object bar 614 (e.g., ten pixels across), the bar-width 620 ofthe tradeable object bar 610 (e.g., 8.1 pixels across) is less than thebar-width 622 of the tradeable object bar 612 (e.g., 9 pixels across),the bar-width 618 of the tradeable object bar 608 (e.g., 7.3 pixelsacross) is less than the bar-width 620 of the tradeable object bar 610(e.g., 8.1 pixels across), and the bar-width 606 of the tradeable objectbar 606 (e.g., 6.6 pixels across) is less than the bar-width 608 of thetradeable object bar 608 (7.3 pixels across). In other examples, thebar-width may be selected based on an equation or formulaic factor. Forexample, the bar-width may be based on a volume traded within eachrespective tradeable object bar, a logarithmic relation, asliding-scale, etc.

In the illustrated example of FIG. 6, the bar-spacing betweenconsecutive tradeable object bars is varied based on the appliedspatial-scaling factor. In the illustrated example, a 90%spatial-scaling factor applied to the bar-spacing between consecutivetradeable object bars, and the default bar-spacing is fifteen pixels.That is, the bar-spacing 634 of the most recent tradeable object bar(e.g., the distance between the tradeable object bar 614 and the axis604) is fifteen pixels. Thus, in the illustrated example, thebar-spacing 632 of the tradeable object bar 612 (e.g., 13.5 pixels) isless than the bar-spacing 634 of the tradeable object bar 614 (e.g.,fifteen pixels), the bar-spacing 630 of the tradeable object bar 610(e.g., 12.2 pixels) is less than the bar-spacing 632 of the tradeableobject bar 612 (e.g., 13.5 pixels), the bar-spacing 628 of the tradeableobject bar 608 (e.g., 10.9 pixels) is less than the bar-spacing 630 ofthe tradeable object bar 610 (e.g., 12.2 pixels), and the bar-spacing616 of the tradeable object bar 606 (e.g., 9.8 pixels) is less than thebar-spacing 618 of the tradeable object bar 608 (10.9 pixels). In otherexamples, the bar-spacing may be selected based on an equation orformulaic factor.

In some examples, the variable display 600 stops drawing tradeableobject bars when the scaled-bar width of the tradeable object bar iszero (or less than one pixel).

As discussed above, due to the variable scaling, additional informationcan be displayed in the variable display 600. In the illustratedexample, tradeable object bars 640-645 represent market data for olderaggregation periods that can now be shown due to the additional space inthe variable display 600. Each of the tradeable object bars 640-645 hasa respective bar-width that is 90% of its adjacent tradeable object bar,and the bar-spacing between two tradeable object bars is 90% of itsadjacent bar-spacing.

FIG. 7 illustrates another example variable display 700. The variabledisplay 700 may be generated by a tradeable object variable displaymodule, as discussed above. In the illustrated example, the variabledisplay 700 charts a tradeable object 702 (e.g., the February 2014 CrudeOil futures traded by at the New York Mercantile Exchange (NYMEX)identified as “WTI February 14”) on the variable display 700.

The example variable display 700 includes tradeable object bars 706,708, 710, 712, 714. Each tradeable object bar is a visual representationof market data aggregated over a period of time. A tradeable object barrepresents an aggregation of market data for a tradeable object. In theillustrated example, each tradeable object bar represents market data(e.g., received from the NYMEX for the February 2014 Crude Oil futures)aggregated over different periods of time. For example, the tradeableobject bar 706 is a graphical representation of market data aggregatedover a first period of time (e.g., a first subset of the market data),the tradeable object bar 708 is a graphical representation of marketdata aggregated over a second period of time (e.g., a second subset ofthe market data), the tradeable object bar 710 is a graphicalrepresentation of market data aggregated over a third period of time(e.g., a third subset of the market data), the tradeable object bar 712is a graphical representation of market data aggregated over a fourthperiod of time (e.g., a fourth subset of the market data), and thetradeable object bar 714 is a graphical representation of market dataaggregated over a fifth period of time (e.g., a fifth subset of themarket data). In the illustrated example, the variable display 700includes an example axis 704 to, for example, normalize prices for thetradeable object bars 706, 708, 710, 712, 714.

In the illustrated example of FIG. 7, the tradeable object bars 706,708, 710, 712, 714 are displayed using variable scaling. For example,each of the tradeable object bars 706, 708, 710, 712, 714 has arespective bar-width 716, 718, 720, 722, 724 and a respectivebar-spacing 726, 728, 730, 732, 734. In the illustrated example, thebar-widths for the tradeable object bars 706, 708, 710, 712, 714 arevaried based on the applied width-scaling factor. In the illustratedexample, a 90% width-scaling factor is applied to the bar-width of eachtradeable object bar relative to its adjacent bar, and the defaultbar-width is ten pixels across. For example, the bar-width 724 of themost recent tradeable object bar (e.g., the tradeable object bar 714) isten pixels.

In the illustrated example of FIG. 7, the bar-spacing betweenconsecutive tradeable object bars is varied based on the appliedspatial-scaling factor. In the illustrated example, a 90%spatial-scaling factor applied to the bar-spacing between consecutivetradeable object bars, and the default bar-spacing is fifteen pixels.That is, the bar-spacing 734 of the most recent tradeable object bar(e.g., the distance between the tradeable object bar 714 and the axis704) is fifteen pixels.

In some examples, a trader may desire additional information about atradeable object bar. For example, the trader may desire a “normal” viewof a tradeable object bar that has been scaled. In the illustratedexample of FIG. 7, the trader selects the tradeable object bar 708. Inthe illustrated example, doing so launches a new window 740 in whichadditional information about the selected tradeable object bar isdisplayed. For example, the window 740 includes tradeable object bars708A, 708B, 708C representative of the market data aggregated to formthe tradeable object bar 708. To provide the trader a more granular viewof the graphical representation, the window 740 presents the tradeableobjects bars 708A, 708B, 708C with respective bar-widths 718A, 718B,718C set to the default bar-width (e.g., ten pixels) and respectivebar-spacings 728A, 728B, 728C set to the default bar-spacing (e.g.,fifteen pixels). The window 740 includes an example axis 704A tonormalize the tradeable object bars 708A, 708B, 708C.

In the illustrated example of FIG. 7, a trader may use an input device(e.g., a mouse, touch screen, touch pad, track ball, etc.) to select atradeable object bar by moving an example cursor 742 over, on top of,adjacent to, or otherwise in relationship with the tradeable object barand clicking the mouse. However, other approaches may additionally oralternatively be used. For example, the trader may position the cursor742 over, on top of, adjacent to, or otherwise in relationship with thetradeable object bar without clicking the mouse (e.g., “hover” thecursor over the tradeable object bar, etc.).

In some examples, rather than launching the new window 740, the variabledisplay 700 may adjust the location or position of the tradeable objectbars 706, 708, 710, 712, 714 so that the information provided in thewindow 740 is in-line with the tradeable object bars 706, 708, 710, 712,714. For example, the tradeable object bar 708 may be replaced with thetradable object bars 708A, 708B, 708C presented in the window 740. Insome such examples, the variable display 700 may adjust the bar-widthsand/or bar-spacings of the other tradeable object bars 706, 710, 712,714. For example, the variable display 700 may “squeeze” the view of theother tradeable object bars 706, 710, 712, 714 by decreasing thebar-widths 716, 720, 722, 724 and/or the bar-spacings 726, 730, 732, 734of the respective tradeable object bars. In some such examples, thevariable display 700 presents the “squeezed” view for the duration thatthe tradeable object bar 708 is selected. For example, when thetradeable object bar 708 is de-selected (e.g., the trader moves thecursor away from the tradeable object bar 708), the variable display 700re-adjusts the bar-widths and/or bar-spacings based on the selectedwidth-scaling factor and/or the selected spatial-scaling factor.

FIG. 8 illustrates another example variable display 800. The variabledisplay 800 may be generated by a tradeable object variable displaymodule, as discussed above. In the illustrated example, the variabledisplay 800 charts a tradeable object 802 (e.g., the February 2014 CrudeOil futures traded by at the New York Mercantile Exchange (NYMEX)identified as “WTI February 14”) on the variable display 800.

The example variable display 800 includes tradeable object bars 806,808, 810, 812, 814. A tradeable object bar represents an aggregation ofmarket data for a tradeable object. In the illustrated example, eachtradeable object bar represents market data (e.g., received from theNYMEX for the February 2014 Crude Oil futures) aggregated over differentperiods of time. For example, the tradeable object bar 806 is agraphical representation of market data aggregated over a first periodof time 816 (e.g., a first subset of the market data), the tradeableobject bar 808 is a graphical representation of market data aggregatedover a second period of time 818 (e.g., a second subset of the marketdata), the tradeable object bar 810 is a graphical representation ofmarket data aggregated over a third period of time 820 (e.g., a thirdsubset of the market data), the tradeable object bar 812 is a graphicalrepresentation of market data aggregated over a fourth period of time822 (e.g., a fourth subset of the market data), and the tradeable objectbar 814 is a graphical representation of market data aggregated over afifth period of time 824 (e.g., a fifth subset of the market data). Inthe illustrated example, the variable display 800 includes an exampleaxis 804 to, for example, normalize prices for the tradeable object bars806, 808, 810, 812, 814.

In the illustrated example of FIG. 8, the tradeable object bars 806,808, 810, 812, 814 are displayed using variable aggregation. Forexample, the duration of time over which market data is aggregated foreach of the aggregation periods 816, 818, 820, 822, 824 varies based onthe selected aggregation-scaling factor (e.g., the aggregation-scalingfactor 512 of FIG. 5). For example, when the aggregation-scaling factor512 is set to one (e.g., the default aggregation-scaling factor), theneach of the aggregation periods 816, 818, 820, 822, 824 represents thesame duration of time (e.g., one minute). In the illustrated example,applying the default aggregation-scaling factor to the tradeable objectbars results in five minutes of market data being graphicallyrepresented.

However, when the aggregation-scaling factor is set to a value otherthan one, then the duration of aggregation periods 816, 818, 820, 822,824 varies. For example, when the aggregation-scaling factor is set tofive, then the aggregation period 824 represents market data for thetradeable object 802 that is aggregated over the most recent minute, theaggregation period 822 represents market data for the tradeable object802 that is aggregated over the next five minutes (e.g., minutes 1-6),the aggregation period 820 represents market data for the tradeableobject 802 that is aggregated over the next twenty-five minutes (e.g.,minutes 6-31), the aggregation period 818 represents market data for thetradeable object 802 that is aggregated over the next 125 minutes (e.g.,minutes 31-156), and the aggregation period 816 represents market datafor the tradeable object 802 that is aggregated over the next 625minutes (e.g., minutes 156-781). As a result, rather than representingmarket data for only five minutes (e.g., when the aggregation-scalingfactor is set to the default value), the variable display 800 representsmarket data for 781 minutes. In some such examples, the trader maydesire to see swing-highs and/or swing-lows associated with thetradeable object 802 rather than, for example, trends.

However, other aggregation-scaling factors may additionally oralternatively be used. For example, the aggregation-scaling factor maybe determined using an equation.

In some examples, the trader may desire more detailed information abouta tradeable object bar. For example, the trader may select the tradeableobject bar 812 to view a more granular view of the market data for thatperiod of time (e.g., minutes 1-6). In some such examples, the variabledisplay 800 may launch a new window 840 similar to the window 740 ofFIG. 7 to present a more granular view of the market data. For example,the variable display 800 may apply the default aggregation-scalingperiod (e.g., one minute) to the market data represented by thetradeable object bar 822 and present new tradeable object bars 842.

In some examples, the window 840 may be presented in-line with the othertradeable object bars 806, 808, 810, 814. For example, the tradeableobject bar 812 may be replaced by the tradeable object bars 842. In someexamples, the variable display 800 may temporarily adjust the bar-widthsand/or bar-spacings of the other tradeable object bars 806, 808, 810,814 while the tradeable object bars 842 are displayed (e.g., thetradeable object bar 812 is selected).

For example, the variable display 800 may “squeeze” the view of theother tradeable object bars 806, 810, 812, 814 by decreasing thebar-widths and/or the bar-spacing of the respective tradeable objectbars. In some such examples, the variable display 800 presents the“squeezed” view for the duration that the tradeable object bar 808 isselected. For example, when the tradeable object bar 808 is de-selected(e.g., the trader moves the cursor away from the tradeable object bar808), the variable display 800 re-adjusts the bar-widths and/orbar-spacing based on the selected width-scaling factor and/or theselected spatial-scaling factor.

FIG. 9 illustrates another example variable display 900. The variabledisplay 900 may be generated by a tradeable object variable displaymodule, as discussed above. In the illustrated example, the variabledisplay 900 charts a tradeable object 902 (e.g., the February 2014 CrudeOil futures traded by at the New York Mercantile Exchange (NYMEX)identified as “WTI February 14”) on the variable display 900.

The example variable display 900 includes tradeable object bars 906,908, 910, 912, 914. A tradeable object bar represents an aggregation ofmarket data for a tradeable object. In the illustrated example, eachtradeable object bar represents market data (e.g., received from theNYMEX for the February 2014 Crude Oil futures) aggregated over differentperiods of time. For example, the tradeable object bar 906 is agraphical representation of market data aggregated over a first periodof time (e.g., a first subset of the market data), the tradeable objectbar 908 is a graphical representation of market data aggregated over asecond period of time (e.g., a second subset of the market data), thetradeable object bar 910 is a graphical representation of market dataaggregated over a third period of time (e.g., a third subset of themarket data), the tradeable object bar 912 is a graphical representationof market data aggregated over a fourth period of time (e.g., a fourthsubset of the market data), and the tradeable object bar 914 is agraphical representation of market data aggregated over a fifth periodof time (e.g., a fifth subset of the market data). In the illustratedexample, the variable display 900 includes an example axis 904 to, forexample, normalize prices for the tradeable object bars 906, 908, 910,912, 914.

In the illustrated example of FIG. 9, the tradeable object bars 906,908, 910, 912, 914 are displayed using variable scaling. For example,each of the tradeable object bars 906, 908, 910, 912, 914 has arespective bar-width scaled by applying a width-scaling factor (e.g.,the example width-scaling factor 504 of FIG. 5) and a respectivebar-spacing scaled by applying a spatial-scaling factor (e.g., theexample spatial-scaling factor 508 of FIG. 5). For example, when thewidth-scaling factor 504 is set to 90%, then the bar-width of atradeable object bar is 90% that of the adjacent tradeable object bar.Similarly, when the spatial-aggregation factor 508 is set to 90%, thenthe bar-spacing of a tradeable object bar is 90% that of the adjacenttradeable object bar. In other examples, the bar-width and/or thebar-scaling may be scaled based on an equation or formulaic factor.

In the illustrated example, when the variable display 900 presents thetradeable object bars 906, 908, 910, 912, 914, a determination is madewhether displaying the tradeable object bar provides new information. Insome such examples, when a first tradeable object bar visually providesno new information in comparison to a second, adjacent tradeable objectbar, then the variable display 900 may not present the first tradeableobject bar. For example, in the illustrated example, the high-value ofthe tradeable object bar 908 is less than the high-value of thetradeable object bar 906, and the low-value of the tradeable object bar906 is less than the low-value of the tradeable object bar 908. As aresult, the tradeable object bar 908 visually provides no newinformation in comparison to the tradeable object bar 906. In some suchexamples, the tradeable object bar 906 “consumes” the tradeable objectbar 908. For example, the bar-width of the tradeable object bar 906 isincreased to overlap with the tradeable object bar 908. In theillustrated example, an example tradeable object bar 920 (drawn using adashed line) is drawn having a bar-width equal to the bar-width of thetradeable object bar 906, the bar-width of the tradeable object bar 908and bar spacing 926.

In some examples, the trader may select the tradeable object bar 920 tosee additional information about the market data graphically representedby the tradeable object bar 920. For example, a new window may launch inwhich the replaced tradeable object bars 906, 908 are shown. In someexamples, the variable display 900 may launch a new window in which themarket data represented by the replaced tradeable object bars 906, 908is shown by applying the default scaling factors (e.g., thewidth-scaling factor 504 and the spatial-scaling factor 508 are both setto one) to the tradeable objects bars included in the new window. Insome examples, the more granular tradeable object bars are displayedin-line with the other tradeable object bars. For example, rather thanlaunching a new window to show the finer market data, the tradeableobject bar 920 may be replaced with the granular tradeable object bars.

FIG. 10 is an example flow diagram of an example method 1000 forcharting market data with variable scaling and/or aggregation. Theexample method 1000 may be implemented by a computing device such as theexample trading device 110, the example gateway 120, the exampleelectronic exchange 130 and/or, more generally, the example system 100of FIG. 1. Control begins at block 1002 when a computing device receivesmarket data for a tradeable object. For example, the computing devicemay receive market data from an electronic exchange and/or retrieve themarket data from memory.

At block 1004, the computing device determines whether a non-defaultaggregation-scaling factor is to be applied to the market data. Forexample, the computing device may determine whether a trader selected anaggregation-scaling factor different from the default value (e.g., oneminute). If, at block 1004, the computing device determines to apply anon-default aggregation-scaling factor to the market data, then, atblock 1006, the computing device aggregates the market data over timeperiods based on the selected scaling factor.

If, at block 1004, the computing device determines that the defaultvalue is to be applied, then, at block 1008, the computing deviceaggregates the market data in one minute intervals. At block 1010, thecomputing device determines the graphical characteristics for the one ormore tradeable object bars to present in a variable display. Forexample, the computing device may compute the height of a tradeableobject bar based on the difference between the high-value and thelow-value for the corresponding aggregation period.

At block 1012, the computing device determines whether non-default barscaling factors were selected to apply to the tradeable object bars. Forexample, the computing device may determine whether the trader selecteda width-scaling factor and/or a spatial-scaling factor different fromthe default value (e.g., one). If, at block 1012, the computing devicedetermines that a non-default bar-scaling factor was selected (e.g., thewidth-scaling factor and/or the spatial-scaling factor was set at lessthan one), then, at block 1014, the computing device adjusts thegraphical characteristics for the tradeable object bars by applying thebar-scaling factor(s). For example, the computing device may determinethe bar-width for each of the tradeable object bars based on thewidth-scaling factor and determine the bar-spacing between consecutivetradeable object bars based on the spatial-scaling factor.

If, at block 1012, the computing device determines that the defaultbar-scaling factors were selected, or after the computing device adjuststhe graphical characteristics of the tradeable object bars at block1014, then, at block 1016, the computing device launches a variabledisplay to graphically represent the received market data. For example,the computing device may draw the tradeable object bars based on theircorresponding graphical characteristics. At block 1018, the computingdevice determines whether to continue charting market data with variablescaling and/or aggregation. For example, a refresh rate may be appliedto the variable display and/or new market data may be received. If, atblock 1018, the computing device determines to continue charting marketdata, then control returns to block 1002. If, at block 1018, thecomputing device determines not to continue charting market data, then,the method 1000 ends.

FIG. 11 illustrates another example variable display 1100. The variabledisplay 1100 may be generated by a tradeable object variable displaymodule executed by, for example, the processor 312. In the illustratedexample, the variable display 1100 displays a plurality of tradeableobject bars 1102 related to a tradeable object (e.g., the tradeableobject 402 shown in FIG. 4). In the illustrated example, the pluralityof tradeable object bars 1102 are displayed without scaling oraggregation of the market data. The plurality of tradeable object bars1102 are displayed relative to an example axis 1104. The example axis1104 may represent normalize prices for the tradeable object bars 1102.FIG. 11 further illustrates a trendline 1106. The trendline 1106illustrates, for example, the direction in which the tradeable object'svalue may move over time. In other embodiments, the trendline 1106 maybe configured to represent other aspects of the market data such asquantity, last traded price, and derived prices such as a price changerelative to an opening price.

FIG. 12 illustrates another example variable display 1200. The variabledisplay 1200 may be generated by a tradeable object variable displaymodule executed by, for example, the processor 312. In the illustratedexample, the variable display 1200 displays a plurality of aggregatedtradeable object bars 1202, 1204 and 1206. The plurality of aggregatedtradeable object bars 1202, 1204 and 1206 relate to a tradeable object.The plurality of tradeable object bars 1202, 1204 and 1206 are displayedrelative to an example axis 1208. Each group of aggregated tradeableobject bars 1202, 1204 and 1206 are displayed according to a differentscaling and/or aggregation factor. FIG. 12 further illustrates a benttrendline 1210. The bent trendline 1210 illustrates, for example, thedirection in which the tradeable object's value may move over time. Thebent trendline 1210 include a plurality of segments 1212, 1214 and 1216.Each of the plurality of segments 1212, 1214 and 1216 is bent accordingto the scaling factor applied to the plurality of tradeable object bars1202, 1204 and 1206. For example, the group of aggregated tradeableobject bars 1206 is displayed in a compressed and/or highly scaledmanner. The segment 1206 of the trendline 1210 describes the trendassociated with the group of aggregated tradeable object bars 1206. Inparticular, as the scaling factor applied to the group of aggregatedtradeable object bars 1206 increases, the slope of the segment 1206increases. Similarly, the slopes of the segments 1214 and 1216 areaffected by changes in the scaling factors applied to the respectivegroups of aggregated tradeable object bars 1214 and 1212.

In operation, a trading application can present different types ofinformation. For example, a trading application can include a tradeableobject variable display module to present a graphical representation ofmarket data for a tradeable object(s) in a window. In some suchexamples, a trader may desire the window to present additionalinformation. As described and disclosed herein, an example variabledisplay enables a trader to variably scale the visual representations(e.g., the tradeable object bars). For example, a width-scaling factormay be selected to variably adjust the width of each tradeable objectbar, and, thereby, facilitate presenting additional information (e.g.,historic market data) for the trader to process. A spatial-scalingfactor may be selected to variably adjust the amount of space betweenconsecutive tradeable object bars, and, thereby, facilitate presentingadditional information (e.g., historic market data) for the trader toprocess. By adjusting the width-scaling factor and/or thespatial-scaling factor, the amount of information displayed (e.g., overa longer period of time) may be useful for identifying a trend betweenthe price and the volume of the tradeable object, for example.

In some examples, an aggregation-scaling factor may be selected tovariably adjust the market data aggregated into “rolled-up” bars. Forexample, an aggregation-scaling factor may be selected so that the mostrecent market data is presented in one or more one minute intervals,while older market data is “rolled-up” over longer periods of time(e.g., ten minutes, one hour, one day, etc.). By adjusting theaggregations, a longer term view of swing-highs and swing-lows of thedata may be observed and processed.

Some of the described figures depict example block diagrams, systems,and/or flow diagrams representative of methods that may be used toimplement all or part of certain examples. One or more of thecomponents, elements, blocks, and/or functionality of the example blockdiagrams, systems, and/or flow diagrams may be implemented alone or incombination in hardware, firmware, discrete logic, as a set of computerreadable instructions stored on a tangible computer readable medium,and/or any combinations thereof, for example.

The example block diagrams, systems, and/or flow diagrams may beimplemented using any combination of application specific integratedcircuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), fieldprogrammable logic device(s) (FPLD(s)), discrete logic, hardware, and/orfirmware, for example. Also, some or all of the example methods may beimplemented manually or in combination with the foregoing techniques,for example.

The example block diagrams, systems, and/or flow diagrams may beperformed using one or more processors, controllers, and/or otherprocessing devices, for example. For example, the examples may beimplemented using coded instructions, for example, computer readableinstructions, stored on a tangible computer readable medium. A tangiblecomputer readable medium may include various types of volatile andnon-volatile storage media, including, for example, random access memory(RAM), read-only memory (ROM), programmable read-only memory (PROM),electrically programmable read-only memory (EPROM), electricallyerasable read-only memory (EEPROM), flash memory, a hard disk drive,optical media, magnetic tape, a file server, any other tangible datastorage device, or any combination thereof. The tangible computerreadable medium is non-transitory.

Further, although the example block diagrams, systems, and/or flowdiagrams are described above with reference to the figures, otherimplementations may be employed. For example, the order of execution ofthe components, elements, blocks, and/or functionality may be changedand/or some of the components, elements, blocks, and/or functionalitydescribed may be changed, eliminated, sub-divided, or combined.Additionally, any or all of the components, elements, blocks, and/orfunctionality may be performed sequentially and/or in parallel by, forexample, separate processing threads, processors, devices, discretelogic, and/or circuits.

While examples have been disclosed, various changes may be made andequivalents may be substituted. In addition, many modifications may bemade to adapt a particular situation or material. Therefore, it isintended that the disclosed technology not be limited to the particularexamples disclosed, but will include all examples falling within thescope of the appended claims.

1. (canceled)
 2. A computer readable medium having stored thereininstructions executable by a processor, wherein the instructions areexecutable to: receive market data related to a tradeable object offeredat an exchange; aggregate a first data subset of the market data for afirst period; aggregate a second data subset of the market data for asecond period, the second period represents a period of time differentfrom and before the first period; aggregate a third data subset of themarket data for a third period, the third period represents a period oftime different from the first period and the second period, and whereinthe third period is before the second period; define a first bar basedon the first data subset and a first bar-width; define a second barbased on the second data subset and a second bar-width, wherein thesecond bar-width is related to the first bar-width based on awidth-scaling factor, and wherein the second bar-width is based on thewidth-scaling factor applied to the first bar-width and is narrower thanthe first bar-width; define a third bar based on the third data subsetand a third bar-width, wherein the third bar-width is related to thesecond bar-width based on the width-scaling factor, and wherein thethird bar-width is scaled based on the width-scaling factor applied tothe second bar-width and is narrower than the second bar-width; displaythe first bar and the second bar in a window, wherein the first bar andthe second bar are separated by a first bar-spacing; display the thirdbar in the window in relation to the second bar, wherein the second barand the third bar are separated by a second bar-spacing that isdifferent than the first bar-spacing, wherein the second bar-spacing isrelated to the first bar-spacing based on a spatial-scaling factor,wherein the second bar-spacing is based on the spatial-scaling factorapplied to the first bar-spacing and is less than the first bar-spacing;detect a user-input control overlapping with the second bar; in responseto the user-input control, display a second window in relation to thesecond bar; define a fourth bar based on the second data subset and thefirst bar-width; and display the fourth bar in the second window.
 3. Thecomputer readable medium of claim 2, wherein a duration associated withthe first period is the same as a duration associated with the secondperiod, and the width-scaling factor is less than one.
 4. The computerreadable medium of claim 2, wherein the spatial-scaling factor is lessthan one.
 5. The computer readable medium of claim 2, wherein a durationassociated with the second period is relative to a duration associatedwith the first period based on an aggregation-scaling factor greaterthan one.
 6. The computer readable medium of claim 2, wherein thewidth-scaling factor or a spatial-scaling factor associated withdistances between respective bars is less than one.
 7. The computerreadable medium of claim 2, wherein the width-scaling factor and aspatial-scaling factor associated with distances between respective barsis less than one.
 8. The computer readable medium of claim 2, whereinthe second window is within the first window.
 9. The computer readablemedium of claim 2, wherein the second window overlaps the first window.10. The computer readable medium of claim 2, wherein when values of thefirst data subset are a subset of the second data subset, the second barconsumes the first bar.
 11. The computer readable medium of claim 2,wherein when values of the first data subset are not a subset of thesecond data subset, the instructions are executable to display the firstbar and the second bar as distinct bars in the window.
 12. The computerreadable medium of claim 2, wherein the width-scaling factor, thespatial-scaling factor associated with distances between respective barsor an aggregation-scaling factor associated with respective periods is asliding scale.
 13. The computer readable medium of claim 2, wherein thewidth-scaling factor, the spatial-scaling factor associated withdistances between respective bars or an aggregation-scaling factorassociated with respective periods is logarithmic.
 14. The computerreadable medium of claim 2, wherein the market data includes anopen-value, a high-value, a low-value and a close-value.
 15. Thecomputer readable medium of claim 14, wherein each bar of the first bar,second bar, and the third bar is an indicator defined based on theopen-value, the high-value, the low-value and the close-value.
 16. Thecomputer readable medium of claim 2, wherein each bar of the first bar,the second bar, and the third bar is a candlestick.
 17. The computerreadable medium of claim 2, wherein each bar of the first bar, thesecond bar, and the third bar is a vertically-aligned market indicia.